/*
 * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd.
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 */
pub const IPMI_GET_SDR_REPOSITORY_INFO: u8 = 0x20;
pub const IPMI_SOL_ACTIVATING: u8 = 0x20;
pub const IPMI_SET_SOL_CONFIG_PARAMETERS: u8 = 0x21;
pub const IPMI_GET_SOL_CONFIG_PARAMETERS: u8 = 0x22;
pub const IPMI_SET_USER_ACCESS: u8 = 0x43;
pub const IPMI_GET_USER_ACCESS: u8 = 0x44;
pub const IPMI_SET_USER_NAME: u8 = 0x45;
pub const IPMI_GET_USER_NAME: u8 = 0x46;
pub const IPMI_SET_USER_PASSWORD: u8 = 0x47;
pub const IPMI_ACTIVATE_PAYLOAD: u8 = 0x48;
pub const IPMI_DEACTIVATE_PAYLOAD: u8 = 0x49;
pub const IPMI_SUSPEND_RESUME_PAYLOAD_ENCRYPTYION: u8 = 0x55;
pub const IPMI_GET_SEL_TIME: u8 = 0x48;
pub const IPMI_SET_SEL_TIME: u8 = 0x49;
pub const IPMI_SET_USER_PAYLOAD_ACCESS: u8 = 0x4c;
pub const IPMI_GET_USER_PAYLOAD_ACCESS: u8 = 0x4d;

pub const IPMI_1_5_AUTH_TYPE_BIT_NONE: u8 = 0x01;
pub const IPMI_1_5_AUTH_TYPE_BIT_MD2: u8 = 0x02;
pub const IPMI_1_5_AUTH_TYPE_BIT_MD5: u8 = 0x04;
pub const IPMI_1_5_AUTH_TYPE_BIT_PASSWORD: u8 = 0x10;
pub const IPMI_1_5_AUTH_TYPE_BIT_OEM: u8 = 0x20;

pub const IPMI_SESSION_AUTHTYPE_NONE: u8 = 0x0;
pub const IPMI_SESSION_AUTHTYPE_MD2: u8 = 0x1;
pub const IPMI_SESSION_AUTHTYPE_MD5: u8 = 0x2;
pub const IPMI_SESSION_AUTHTYPE_KEY: u8 = 0x4;
pub const IPMI_SESSION_AUTHTYPE_PASSWORD: u8 = IPMI_SESSION_AUTHTYPE_KEY;
pub const IPMI_SESSION_AUTHTYPE_OEM: u8 = 0x5;
pub const IPMI_SESSION_AUTHTYPE_RMCP_PLUS: u8 = 0x6;

pub const IPMI_SESSION_PRIV_UNSPECIFIED: u8 = 0x0;
pub const IPMI_SESSION_PRIV_CALLBACK: u8 = 0x1;
pub const IPMI_SESSION_PRIV_USER: u8 = 0x2;
pub const IPMI_SESSION_PRIV_OPERATOR: u8 = 0x3;
pub const IPMI_SESSION_PRIV_ADMIN: u8 = 0x4;
pub const IPMI_SESSION_PRIV_OEM: u8 = 0x5;
pub const IPMI_SESSION_PRIV_NOACCESS: u8 = 0xF;

pub const IPMI_SET_IN_PROGRESS_SET_COMPLETE: u8 = 0x00;
pub const IPMI_SET_IN_PROGRESS_IN_PROGRESS: u8 = 0x01;
pub const IPMI_SET_IN_PROGRESS_COMMIT_WRITE: u8 = 0x02;

pub const IPMI_CHANNEL_MEDIUM_RESERVED: u8 = 0x0;
pub const IPMI_CHANNEL_MEDIUM_IPMB_I2C: u8 = 0x1;
pub const IPMI_CHANNEL_MEDIUM_ICMB_1: u8 = 0x2;
pub const IPMI_CHANNEL_MEDIUM_ICMB_09: u8 = 0x3;
pub const IPMI_CHANNEL_MEDIUM_LAN: u8 = 0x4;
pub const IPMI_CHANNEL_MEDIUM_SERIAL: u8 = 0x5;
pub const IPMI_CHANNEL_MEDIUM_LAN_OTHER: u8 = 0x6;
pub const IPMI_CHANNEL_MEDIUM_SMBUS_PCI: u8 = 0x7;
pub const IPMI_CHANNEL_MEDIUM_SMBUS_1: u8 = 0x8;
pub const IPMI_CHANNEL_MEDIUM_SMBUS_2: u8 = 0x9;
pub const IPMI_CHANNEL_MEDIUM_USB_1: u8 = 0xa;
pub const IPMI_CHANNEL_MEDIUM_USB_2: u8 = 0xb;
pub const IPMI_CHANNEL_MEDIUM_SYSTEM: u8 = 0xc;

pub const IPMI_CHASSIS_CTL_POWER_DOWN: u8 = 0x0;
pub const IPMI_CHASSIS_CTL_POWER_UP: u8 = 0x1;
pub const IPMI_CHASSIS_CTL_POWER_CYCLE: u8 = 0x2;
pub const IPMI_CHASSIS_CTL_HARD_RESET: u8 = 0x3;
pub const IPMI_CHASSIS_CTL_PULSE_DIAG: u8 = 0x4;
pub const IPMI_CHASSIS_CTL_ACPI_SOFT: u8 = 0x5;

// Boot parameter constants
pub const IPMI_CHASSIS_BOOTPARAM_SET_IN_PROGRESS: u8 = 0;
pub const IPMI_CHASSIS_BOOTPARAM_SVCPART_SELECT: u8 = 1;
pub const IPMI_CHASSIS_BOOTPARAM_SVCPART_SCAN: u8 = 2;
pub const IPMI_CHASSIS_BOOTPARAM_FLAG_VALID: u8 = 3;
pub const IPMI_CHASSIS_BOOTPARAM_INFO_ACK: u8 = 4;
pub const IPMI_CHASSIS_BOOTPARAM_BOOT_FLAGS: u8 = 5;
pub const IPMI_CHASSIS_BOOTPARAM_INIT_INFO: u8 = 6;
pub const IPMI_CHASSIS_BOOTPARAM_INIT_MBOX: u8 = 7;

pub const IPMI_CHASSIS_POLICY_NO_CHANGE: u8 = 0x3;
pub const IPMI_CHASSIS_POLICY_ALWAYS_ON: u8 = 0x2;
pub const IPMI_CHASSIS_POLICY_PREVIOUS: u8 = 0x1;
pub const IPMI_CHASSIS_POLICY_ALWAYS_OFF: u8 = 0x0;

pub const IPMI_AUTH_RAKP_NONE: u8 = 0x00;
pub const IPMI_AUTH_RAKP_HMAC_SHA1: u8 = 0x01;
pub const IPMI_AUTH_RAKP_HMAC_MD5: u8 = 0x02;
pub const IPMI_AUTH_RAKP_HMAC_SHA256: u8 = 0x03;

pub const IPMI_INTEGRITY_NONE: u8 = 0x00;
pub const IPMI_INTEGRITY_HMAC_SHA1_96: u8 = 0x01;
pub const IPMI_INTEGRITY_HMAC_MD5_128: u8 = 0x02;
pub const IPMI_INTEGRITY_MD5_128: u8 = 0x03;
pub const IPMI_INTEGRITY_HMAC_SHA256_128: u8 = 0x04;

pub const IPMI_CRYPT_NONE: u8 = 0x00;
pub const IPMI_CRYPT_AES_CBC_128: u8 = 0x01;
pub const IPMI_CRYPT_XRC4_128: u8 = 0x02;
pub const IPMI_CRYPT_XRC4_40: u8 = 0x03;
